package com.sztz.batch;

import cn.hutool.core.exceptions.ExceptionUtil;
import cn.hutool.json.JSONUtil;
import com.sztz.entity.FirmUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.batch.core.ItemWriteListener;
import org.springframework.batch.item.ItemWriter;

import java.util.List;

/**
 * 企业用户信息写入器加监听器
 * @author yzy
 * @date 2022/8/30 10:40
 */
@Slf4j
public class FirmUserWriter implements ItemWriter<FirmUser>,ItemWriteListener<FirmUser> {
    /**
     * 企业用户信息写入器加监听器
     * @author yzy
     * @date 2022/8/30 10:40
     */
    @Override
    public void write(List<? extends FirmUser> items) throws Exception {
        log.info(JSONUtil.toJsonStr(items));
    }
    /**
     * 监听写之前
     * @param items 需要写入的数据
     * @author yzy
     * @date 2022/8/30 10:40
     */
    @Override
    public void beforeWrite(List<? extends FirmUser> items) {
        log.info("beforeWrite={}", JSONUtil.toJsonStr(items));
    }
    /**
     * 监听写之后
     * @param items 需要写入的数据
     * @author yzy
     * @date 2022/8/30 10:40
     */
    @Override
    public void afterWrite(List<? extends FirmUser> items) {
        log.info("afterWrite={}", JSONUtil.toJsonStr(items));
    }
    /**
     * 监听写的时候发生错误
     * @param items 需要写入的数据
     * @param exception 异常信息
     * @author yzy
     * @date 2022/8/30 10:40
     */
    @Override
    public void onWriteError(Exception exception, List<? extends FirmUser> items) {
        log.info("onWriteError, Exception={}", ExceptionUtil.stacktraceToString(exception));
    }
}
